package com.neuralnoise.hibernate.facebook;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;

@MappedSuperclass
public abstract class AbstractProfile implements java.io.Serializable {

	private static final long serialVersionUID = 7417744533338876755L;

	private String user;
	
	private String name;
	private String firstName;
	private String lastName;
	private String link;
	
	private String userName;
	private String gender;
	private String locale;
	
	private String website;
	
	public AbstractProfile() { }

	public AbstractProfile(String user) {
		this();
		this.user = user;
	}
	
	public AbstractProfile(String user, String name, String firstName, String lastName, String link,
			String userName, String gender, String locale,
			String website) {
		this(user);
		this.name = name;
		this.firstName = firstName;
		this.lastName = lastName;
		this.link = link;
		
		this.userName = userName;
		this.gender = gender;
		this.locale = locale;
		
		this.website = website;
	}
	
	@Id
	@Column(name = "user", nullable = false, length = 32)
	public String getUser() {
		return this.user;
	}

	public void setUser(String user) {
		this.user = user;
	}

	@Column(name = "name", length = 64)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Column(name = "firstName", length = 64)
	public String getFirstName() {
		return firstName;
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	@Column(name = "lastName", length = 64)
	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	@Column(name = "link", length = 128)
	public String getLink() {
		return link;
	}

	public void setLink(String link) {
		this.link = link;
	}

	@Column(name = "userName", length = 64)
	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	@Column(name = "gender", length = 64)
	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	@Column(name = "locale", length = 16)
	public String getLocale() {
		return locale;
	}

	public void setLocale(String locale) {
		this.locale = locale;
	}

	@Column(name = "website", length = 64)
	public String getWebsite() {
		return website;
	}

	public void setWebsite(String website) {
		this.website = website;
	}
	
}
